#ifndef PRINT_NAME_VALUE
#define PRINT_NAME_VALUE(x)           std::cout<<#x<<": "<<x<<std::endl;
#endif
#ifndef ASSERT_ERROR
#define ASSERT_ERROR(e, s)          if(!(e)){std::cout<<"Error: "<<s<<std::endl;abort();}
#endif
#ifdef USE_OPENCV
zhnmat::Mat cvMat2zhnMat(const cv::Mat& m)
{
    zhnmat::Mat ans(m.rows, m.cols);
    for (int i=0; i<m.rows; i++)
            for (int j=0; j<m.cols; j++)
                ans.set(i, j, m.at<double>(i, j));
    return ans;
}
#endif
